// 测试Boolean构造函数

// 若未指定参数值则新创建的 Boolean实例内包裹的原始值是 false 值
let first = new Boolean();
console.log( first, typeof first );

// 若参数值为 0 或 -0 则新创建的 Boolean实例内包裹的原始值是 false 值
let second = new Boolean(0);
console.log( second, typeof second );

// 若参数值为 null 则新创建的 Boolean实例内包裹的原始值是 false 值
let third = new Boolean(null);
console.log( third, typeof third );

// 若参数值为 undefined 则新创建的 Boolean实例内包裹的原始值是 false 值
let fourth = new Boolean(undefined);
console.log( fourth, typeof fourth );

// 若参数值为 NaN 则新创建的 Boolean实例内包裹的原始值是 false 值
let fifth = new Boolean(NaN);
console.log( fifth, typeof fifth );

// 若参数值为 空字符串 则新创建的 Boolean实例内包裹的原始值是 false 值
let sixth = new Boolean('');
console.log( sixth, typeof sixth );

// 若参数值为 false 则新创建的 Boolean实例内包裹的原始值是 false 值
let x = new Boolean(false);
console.log( x, typeof x );

// 若参数值为 非空字符串 则新创建的 Boolean实例内包裹的原始值是 true 值
let y = new Boolean('false');
console.log( y, typeof y );

// 若参数值为 对象(即实例) 则新创建的 Boolean实例内包裹的原始值是 true 值
let s = new Boolean( {} );
console.log( s, typeof s );

// 若参数值为 数组 则新创建的 Boolean实例内包裹的原始值是 true 值
let t = new Boolean( [] );
console.log( t, typeof t);

// 参考文档
// https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Boolean